Career 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009
All Rounds Final 1/2 1/4 First Second Third Fourth Pre-q Rubber 1 Rubber 2 Rubber 3 Rubber 4 Rubber 5 Robin Bronze Q3 N/A Q2 Q1 ER Q4 CR QF Q5 N/A
All Courts Acrylic N/A Clay Grass Carpet Hard I.hard
All Tour Wimbledon - London Portugal F5 Germany F1 Portugal F1 France F4 Russia F2 Czech Republic F1 Belgium F3 Belgium F9 Germany F14 France F15 Portugal F4 Portugal F5 Germany F17 France F19 Germany F3 Turkey F5 Portugal F3 Kazakhstan F1 Kazakhstan F3 Uzbekistan F1 Czech Republic F1 Germany F6 Netherlands F3 Netherlands F4 Germany F9 Belgium F7 Germany F16 France F17 Portugal F5 Germany F18 France F21 Brazil F31 Brazil F32 Germany F2 Germany F4 Russia F1 Portugal F4 Russia F3 Russia F4 Uzbekistan F1 Egypt F3 Uzbekistan F2 Egypt F4 Russia F8 Germany F6 Spain F33 Portugal F9 Portugal F10 Portugal F11 Egypt F33 Spain F41 Spain F42 Portugal F1 Portugal F2 Portugal F3 Kazakhstan F1 Kazakhstan F2 Kazakhstan F3 Turkey F7 Turkey F8 Portugal F4 Portugal F5 Portugal F6 Russia F4 Belgium F2 Netherlands F2 Belgium F3 Belgium F4 Netherlands F4 Belgium F5 Germany F7 Spain F21 Romania F2 Romania F13 Portugal F8 Portugal F9 Portugal F10 Portugal F11 Turkey F42 Turkey F1 Tunisia F3 Egypt F8 Morocco F2 Morocco F3 France F8 Italy F6 Romania F2 Russia F1 Portugal F7 Mozambique F1 Mozambique F2 Netherlands F1 Netherlands F2 Spain F18 Netherlands F3 Belgium F8 Russia F6 Netherlands F5 Netherlands F6 Belgium F13 Russia F7 Russia F8 Spain F28 Egypt F36 Egypt F38 Egypt F39 Cyprus F2 Cyprus F3 Germany F3 Turkey F7 France F4 Egypt F10 Netherlands F2 Netherlands F4 Germany F8 Russia F7 Romania F15 Hungary F8 Turkey F47 Cyprus F3 Turkey F48 France F1 (Bagnoles-de-l'Orne) Germany F3 (Nussloch) Egypt F4 (Sharm El Sheikh) Egypt F6 (Sharm El Sheikh) France F4 (Lille) Croatia F2 (Porec) Portugal F6 (Porto) Portugal F7 (Carcavelos) Ukraine F1 (Cherkassy) Ukraine F2 (Cherkassy) Romania F2 (Bacau) Tunisia F22 (Hammamet) Portugal F10 (Torres Vedras) Germany F7 (Trier) Portugal F11 (Povoa de Varzim) Portugal F13 (Idanha-A-Nova) Tunisia F27 (Hammamet) Tunisia F28 (Hammamet) Tunisia F29 (Hammamet) Tunisia F30 (Hammamet) Thailand F10 (Hua Hin) Thailand F11 (Hua Hin) Thailand F12 (Hua Hin) Qatar F6 (Doha) Portugal F1 (Vale Do Lobo) Portugal F3 (Loule) Portugal F5 (Vilamoura) Portugal F6 (Lisbon) Portugal F7 (Porto) Portugal F8 (Cascais) European Open - Antwerp M25 Lesa Tunisia F23 (Hammamet) Portugal F14 (Sintra) Portugal F15 (Sintra) M25 Meerbusch M25 Wetzlar Turkey F43 M25 Nevers M25+H Rodez M15 Grenoble M25 Portimao Turkey F2 Egypt F7 Russia F7 Portugal F3 Russia F4 Russia F5 M25 Bourg-en-Bresse Turkey F10 Turkey F11 M25 Roda de Bara Turkey F15 M25 Castelo Branco Portugal F2 M25 Sintra Russia F1 M25 Vale do Lobo Czech Republic F2 Germany F5 Germany F7 Belgium F2 M25+H Kassel Germany F9 Belgium F7 Belgium F8 France F4 Russia F7 Kazakhstan F2 Czech Republic F2 Czech Republic F3 Germany F14 Spain F25 France F16 Portugal F4 Germany F19 Germany F3 Portugal F2 Russia F2 Portugal F3 Egypt F2 Portugal F5 Portugal F6 Portugal F7 Russia F7 Germany F5 Germany F8 Sao Paulo Challenger Netherlands F4 Russia F5 Campinas Challenger Kazan Challenger Napoli Challenger Turkey F9 Bangkok Challenger Egypt F37 Budapest Challenger Belgium F8 Tunisia F7 Portugal F3 Egypt F9 Tampere Challenger Turkey F5 Spain F26 Portugal F4 Mouilleron-Le-Captif Challenger Turkey F49 Netherlands F5 Romania F3 Spain F27 Quimper Challenger Tunisia F6 Netherlands F6 Lyon Challenger Spain F30 Shanghai Challenger Kaohsiung Challenger Almaty Challenger Tashkent Challenger France F16 Tunisia F5 Turkey F6 Italy F5 (Santa Margherita Di Pula) Bratislava Challenger Mouilleron-Le-Captif Challenger Czech Republic F4 Portugal F12 (Idanha-A-Nova) Portugal F5 (Quinta Da Marinha) Egypt F1 (Sharm El Sheikh) Egypt F5 (Sharm El Sheikh) Croatia F1 (Rovinj) Turkey F50 Egypt F32 Koblenz Challenger Jinan Challenger Szczecin Challenger Istanbul Challenger Parma Challenger Quimper Challenger M25 Mataro Biella 5 Challenger Zagreb Challenger Lyon Challenger Bratislava Challenger Salzburg-Anif Challenger M25 Grasse Bratislava Challenger Traralgon Challenger Forli 3 Challenger Aix En Provence Challenger Kobe Challenger Oeiras 3 Challenger Porto Challenger Cassis Challenger Como Challenger Porto 2 Challenger Szczecin Challenger St. Tropez Challenger Orleans Challenger Bratislava 1 Challenger Milan Challenger Porto Challenger M25 Manacor M15 Grenoble M25 Setubal M15 Monastir M25 Esch/Alzette M15+H Bagnoles de l'Orne M25 Creteil M25 Angers M25 Bakio M25 Sintra M25 Monastir M25 Tavira M25 Antalya M25 Saint Dizier M15 Lons-le-Saunier M25 Sarreguemines M25 Vila Real de Santo Antonio M25 Toulouse-Balma Russia F3 M25 Vale do Lobo M25 Toulouse-Balma M25 Vale do Lobo M25 Valldoreix M25 Reggio Emilia M25 Deauville M25 Carnac M25 Mungia-Laukariz M25 Santa Margherita di Pula M15 Villers-les-Nancy M25 Antalya M25 Trento M15 Poitiers M25 Koszalin M25 Poznan M25 Sabadell Estoril Open - Estoril Mersin Challenger Itajai Challenger M25 Grasse Heilbronn Challenger M25 Setubal M25 Villeneuve-Loubet M25 Elvas Segovia Challenger M25 Porto Kazan Challenger M25 Montesilvano M25 Idanha-a-Nova M25 Koksijde M25 Idanha-a-Nova Eskisehir Challenger Tampere Challenger Scheveningen Challenger Segovia Challenger M25 Satu Mare Manerbio Challenger Millennium Estoril Open - Estoril TEB BNP Paribas Istanbul Open - Istanbul Sao Paulo Challenger Bratislava Challenger Bangkok Challenger Grand Prix Hassan II - Marrakech Manila Challenger Germany F2 Barletta Challenger Turin Challenger Rome Challenger M25 Vale do Lobo Mouilleron-Le-Captif Challenger Koblenz Challenger Millennium Estoril Open - Estoril Karshi Challenger Caltanissetta Challenger Lisbon Challenger Blois Challenger Tunisia F4 Milan Challenger Poznan Challenger Genova Challenger Orleans Challenger Hua Hin Challenger Koblenz Challenger Rennes Challenger Alicante Challenger Szczecin Challenger Braga Challenger Heilbronn Challenger Poznan Challenger Poznan Challenger Blois Challenger Marburg Challenger Braunschweig Challenger M25 Vila Real de Santo Antonio Pullach Challenger Genova Challenger Zhangjiagang Challenger Orleans Challenger Florence Challenger M25 Faro Pune Challenger Quimper Challenger Cherbourg Challenger Lille Challenger Sophia Antipolis Challenger Alicante Challenger Francavilla Challenger Aix En Provence Challenger Braga Challenger Heilbronn Challenger Prague Challenger Sopot Challenger Jerusalem Challenger Lyon Challenger Milan Challenger Manerbio Challenger Baotou Challenger Porto Challenger Nur-Sultan Challenger Shenzhen Challenger Knoxville Challenger Prague II Challenger Noumea Challenger Rennes Challenger Quimper Challenger Alicante Challenger Nur-Sultan Challenger Bratislava Challenger Parma Challenger Ortisei Challenger Quimper 2 Challenger Cherbourg Challenger Nur-Sultan 1 Challenger Grodzisk Mazowiecki Challenger Rome 2 Challenger Forli 2 Challenger Bengalaru Challenger Milan Challenger Szczecin Challenger Ostrava Challenger Lisbon Challenger Bergamo Challenger Meerbusch Challenger Prostejov Challenger Helsinki Challenger Poznan Challenger St. Tropez Challenger Tunis Challenger Split Challenger Ortisei Challenger Iasi Challenger Eckental Challenger Sao Paulo Challenger Maia Challenger Hamburg Challenger St. Petersburg 2 Challenger Szekesfehervar Challenger Oeiras 2 Challenger Todi Challenger Madrid Challenger Rome 1 Challenger Lille Challenger Orleans Challenger Alicante Challenger Hamburg Challenger Biella 7 Challenger Brest Challenger Eckental Challenger Sao Leopoldo Challenger Verona Challenger Guimaraes Challenger Segovia Challenger Meerbusch Challenger Banja Luka Challenger Karshi Challenger Samarkand Challenger Prague 3 Challenger Como Challenger Mallorca Challenger Maia Challenger Karlsruhe Challenger Alicante Challenger Banja Luka Challenger Kazan Challenger Bangkok Challenger Kyiv Challenger Marburg Challenger Dobrich 2 Challenger Lisbon Challenger Brest Challenger Mouilleron-Le-Captif Challenger Francavilla Challenger Oeiras 1 Challenger Oeiras 3 Challenger Pau Challenger Lugano Challenger Koblenz Challenger Braga Challenger Bucharest Challenger Oeiras 5 Challenger Andria Challenger Heilbronn Challenger Barletta Challenger Yokkaichi Challenger Troisdorf Challenger Poznan Challenger Brasov Challenger Lyon Challenger Bunschoten Challenger Ottignies-Louvain-la-Neuve Challenger Quimper Challenger Koblenz Challenger Todi Challenger Porto 2 Challenger Seville Challenger Tenerife 1 Challenger Tampere Challenger Cherbourg Challenger Bergamo Challenger Bengaluru Challenger Pune Challenger Francavilla Challenger Prostejov Challenger Porto Challenger Zug Challenger Brest Challenger Mallorca Challenger Rennes Challenger St. Tropez Challenger Oeiras 2 Challenger Quimper Challenger Iasi Challenger Forli 1 Challenger Forli 2 Challenger Quimper Challenger Bengalaru 1 Challenger Sanremo Challenger Heilbronn Challenger Milan Challenger Toulouse Challenger Seville Challenger Cassis Challenger Genova Challenger Braga Challenger Oeiras 1 Challenger Braunschweig Challenger Cherbourg Challenger Pau Challenger Biel Challenger St. Brieuc Challenger Sanremo Challenger Girona Challenger Rovereto Challenger Ostrava Challenger Oeiras 4 Challenger Cherbourg Challenger Poznan Challenger Oeiras 3 Challenger Ostrava Challenger Oeiras 4 Challenger Augsburg Challenger Ludwigshafen Challenger Sassuolo Challenger Lisbon Challenger Tulln Challenger Prague 2 Challenger Forli 3 Challenger Pau Challenger Lugano Challenger Estoril Open - Estoril Porto Challenger San Benedetto Challenger Scheveningen Challenger Rennes Challenger Oberstaufen Challenger Lisbon Challenger Mouilleron-Le-Captif Challenger Yokohama Challenger Roanne Challenger Maia Challenger Heilbronn Challenger Astana Challenger Oeiras 2 Challenger Chennai Challenger Santos Challenger Segovia Challenger Aix En Provence Challenger Casablanca Challenger New Delhi Challenger Kolkata Challenger Roanne Challenger Mersin Challenger Portugal Open - Oeiras Moscow Challenger St. Tropez Challenger Malaga Challenger Porto Alegre Challenger Kremlin Cup - Moscow Tashkent Challenger Matsuyama Challenger BRD Nastase Tiriac Trophy - Bucharest Samarkand Challenger Mestre Challenger Caltanissetta Challenger Power Horse Cup - Dusseldorf Perugia Challenger Fergana Challenger Marburg Challenger Bastad Challenger San Benedetto Challenger Poznan Challenger Tampere Challenger Prague Challenger Scheveningen Challenger Liberec Challenger Trnava Challenger Cordenons Challenger Meerbusch Challenger Manerbio Challenger Genova Challenger Szczecin Challenger Budapest Challenger Eckental Challenger St. Petersburg 1 Challenger Astana Challenger Antalya Cup - Antalya St. Brieuc Challenger Barletta Challenger Braga Challenger Samarkand Challenger Shymkent Challenger Liberec Challenger St. Petersburg Open - St. Petersburg M15 Monastir Cherbourg Challenger Zhuhai Challenger Shenzhen Challenger Mestre Challenger Sopot Challenger Qatar ExxonMobil Open - Doha Lille Challenger Eckental Challenger Bangalore Challenger Tunis Challenger Lisbon Challenger Bratislava Challenger Braunschweig Challenger Amersfoort Challenger Portoroz Challenger L'Aquila Challenger Barcelona Open BancSabadell - Barcelona Kaohsiung Challenger Millennium Estoril Open - Estoril Ningboo Challenger Liuzhou Challenger Charlottesville Challenger Houston Challenger Helsinki Challenger BMW Open - Munich Cherbourg Challenger Bergamo Challenger Estoril Challenger Prague Challenger Nur-Sultan 2 Challenger Zadar Challenger Oeiras 1 Challenger Prague Challenger Oeiras 3 Challenger Aix En Provence Challenger Amersfoort Challenger Plava Laguna Croatia Open - Umag Sibiu Challenger Mouilleron-Le-Captif Challenger Brest Challenger Tenerife Challenger Tampere Challenger Rome 1 Challenger Open Sud de France - Montpellier Luedenscheid Challenger Malaga Challenger Braunschweig Challenger Sofia 2 Challenger Szczecin Challenger Matsuyama Challenger Troisdorf Challenger Abierto Mexicano Telcel - Acapulco Maia Challenger Gijon Open - Gijon Open Sud de France - Montpellier St. Petersburg Open - St. Petersburg Open 13 Provence - Marseille Millennium Estoril Open - Estoril Open 13 Provence - Marseille Millennium Estoril Open - Estoril Grand Prix Hassan II - Casablanca Kremlin Cup - Moscow St. Petersburg Open - St. Petersburg Millennium Estoril Open - Estoril Open 13 Provence - Marseille Estoril Open - Estoril Brest Challenger SkiStar Swedish Open - Bastad BMW Open - Munich European Open - Antwerp Kremlin Cup - Moscow Kremlin Cup - Moscow Kremlin Cup - Moscow Millennium Estoril Open - Estoril St. Petersburg Open - St. Petersburg European Open - Antwerp Kremlin Cup - Moscow Dubai Duty Free Tennis Championships - Dubai Grand Prix Hassan II - Marrakech German Tennis Championships - Hamburg St. Petersburg Open - St. Petersburg St. Brieuc Challenger Open Sud de France - Montpellier Tata Open Maharashtra - Pune St. Petersburg Open - St. Petersburg Sofia Open - Sofia Murray River Open - Melbourne Belgrade 2 - Belgrade Hamburg European Open - Hamburg Sofia Open - Sofia Grand Prix Hassan II - Marrakech BMW Open - Munich Miami Open - Miami Portugal Open - Oeiras Australian Open - Melbourne French Open - Paris Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris U.S. Open - New York Davis Cup, Group I, 1R, SLO-POR 3-2 Davis Cup, Group II, 1R, POR-MAR 4-1 Wimbledon - London Wimbledon - London U.S. Open - New York Wimbledon (juniors) Australian Open (juniors) Wimbledon (juniors) U.S. Open (juniors) French Open (juniors) Wimbledon (juniors) U.S. Open - New York Australian Open Qualifying - Doha Australian Open - Melbourne French Open - Paris Wimbledon - London Australian Open - Melbourne Grodzisk Mazowiecki Challenger Wimbledon - London Australian Open - Melbourne U.S. Open - New York French Open - Paris Davis Cup, Group I, 1R, POR-ISR 5-0 Davis Cup, Group I, PO, RUS-POR 4-1 Davis Cup, Group II, 2R, POR-FIN 4-1 Davis Cup, World Group I, PO, LTU-POR 0-4 All Lower level tournaments M25 Loule U.S. Open (juniors) French Open (juniors) U.S. Open (juniors) Mouilleron-Le-Captif Challenger Luedenscheid Challenger